package com.csproj.basic.service.dto;


import java.io.Serializable;
import java.time.ZonedDateTime;
import java.util.Objects;

/**
 * A DTO for the Path entity.
 */
public class PathDTO implements Serializable {

    private String id;

    private String startSiteId;

    private String startSiteName;

    private String startWarehouseId;

    private String startWarehouseName;

    private String endSiteId;

    private String endSiteName;

    private String endWarehouseId;

    private String endWarehouseName;

    private String pathNo;

    private String type;

    private String typeName;

    private String parentId;

    private String geoJson;

    private String reason;

    private Boolean defaultFlag;

    private Boolean enableFlag;

    private Boolean deletedFlag;

    private String deleterUserId;

    private ZonedDateTime deletionTime;

    private ZonedDateTime lastModificationTime;

    private String lastModifierUserId;

    private ZonedDateTime creationTime;

    private String creatorUserId;

    private String averageTime;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getStartSiteId() {
        return startSiteId;
    }

    public void setStartSiteId(String startSiteId) {
        this.startSiteId = startSiteId;
    }

    public String getStartSiteName() {
        return startSiteName;
    }


    public void setStartSiteName(String startSiteName) {
        this.startSiteName = startSiteName;
    }

    public String getStartWarehouseId() {
        return startWarehouseId;
    }

    public void setStartWarehouseId(String startWarehouseId) {
        this.startWarehouseId = startWarehouseId;
    }

    public String getStartWarehouseName() {
        return startWarehouseName;
    }

    public void setStartWarehouseName(String startWarehouseName) {
        this.startWarehouseName = startWarehouseName;
    }

    public String getEndSiteId() {
        return endSiteId;
    }

    public void setEndSiteId(String endSiteId) {
        this.endSiteId = endSiteId;
    }

    public String getEndSiteName() {
        return endSiteName;
    }

    public void setEndSiteName(String endSiteName) {
        this.endSiteName = endSiteName;
    }

    public String getEndWarehouseId() {
        return endWarehouseId;
    }

    public void setEndWarehouseId(String endWarehouseId) {
        this.endWarehouseId = endWarehouseId;
    }

    public String getEndWarehouseName() {
        return endWarehouseName;
    }

    public void setEndWarehouseName(String endWarehouseName) {
        this.endWarehouseName = endWarehouseName;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getGeoJson() {
        return geoJson;
    }

    public void setGeoJson(String geoJson) {
        this.geoJson = geoJson;
    }

    public String getPathNo() {
        return pathNo;
    }

    public void setPathNo(String pathNo) {
        this.pathNo = pathNo;
    }

    public Boolean isDefaultFlag() {
        return defaultFlag;
    }

    public void setDefaultFlag(Boolean defaultFlag) {
        this.defaultFlag = defaultFlag;
    }

    public Boolean isEnableFlag() {
        return enableFlag;
    }

    public void setEnableFlag(Boolean enableFlag) {
        this.enableFlag = enableFlag;
    }

    public Boolean isDeletedFlag() {
        return deletedFlag;
    }

    public void setDeletedFlag(Boolean deletedFlag) {
        this.deletedFlag = deletedFlag;
    }

    public String getDeleterUserId() {
        return deleterUserId;
    }

    public void setDeleterUserId(String deleterUserId) {
        this.deleterUserId = deleterUserId;
    }

    public ZonedDateTime getDeletionTime() {
        return deletionTime;
    }

    public void setDeletionTime(ZonedDateTime deletionTime) {
        this.deletionTime = deletionTime;
    }

    public ZonedDateTime getLastModificationTime() {
        return lastModificationTime;
    }

    public void setLastModificationTime(ZonedDateTime lastModificationTime) {
        this.lastModificationTime = lastModificationTime;
    }

    public String getLastModifierUserId() {
        return lastModifierUserId;
    }

    public void setLastModifierUserId(String lastModifierUserId) {
        this.lastModifierUserId = lastModifierUserId;
    }

    public ZonedDateTime getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(ZonedDateTime creationTime) {
        this.creationTime = creationTime;
    }

    public String getCreatorUserId() {
        return creatorUserId;
    }

    public void setCreatorUserId(String creatorUserId) {
        this.creatorUserId = creatorUserId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        PathDTO pathDTO = (PathDTO) o;
        if(pathDTO.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), pathDTO.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }

    @Override
    public String toString() {
        return "PathDTO{" +
            "id=" + getId() +
            ", startSiteId='" + getStartSiteId() + "'" +
            ", startSiteName='" + getStartSiteName() + "'" +
            ", startWarehouseId='" + getStartWarehouseId() + "'" +
            ", startWarehouseName='" + getStartWarehouseName() + "'" +
            ", endSiteId='" + getEndSiteId() + "'" +
            ", endSiteName='" + getEndSiteName() + "'" +
            ", endWarehouseId='" + getEndWarehouseId() + "'" +
            ", endWarehouseName='" + getEndWarehouseName() + "'" +
            ", parentId='" + getParentId() + "'" +
            ", type='" + getType() + "'" +
            ", typeName='" + getTypeName() + "'" +
            ", geoJson='" + getGeoJson() + "'" +
            ", pathNo='" + getPathNo() + "'" +
            ", defaultFlag='" + isDefaultFlag() + "'" +
            ", enableFlag='" + isEnableFlag() + "'" +
            ", deletedFlag='" + isDeletedFlag() + "'" +
            ", deleterUserId='" + getDeleterUserId() + "'" +
            ", deletionTime='" + getDeletionTime() + "'" +
            ", lastModificationTime='" + getLastModificationTime() + "'" +
            ", lastModifierUserId='" + getLastModifierUserId() + "'" +
            ", creationTime='" + getCreationTime() + "'" +
            ", creatorUserId='" + getCreatorUserId() + "'" +
            "}";
    }

    public String getAverageTime() {
        return averageTime;
    }

    public void setAverageTime(String averageTime) {
        this.averageTime = averageTime;
    }
}
